{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 动态条形图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "### 1. 初始设置\n",
    "\n",
    "首先，导入所需的库，并设置中文字体等。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入所需的库\n",
    "import os\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.ticker as ticker \n",
    "import matplotlib.animation as animation\n",
    "import datetime\n",
    "from IPython.display import HTML\n",
    "\n",
    "# 正常显示中文标签\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']\n",
    "\n",
    "# 自动适应布局\n",
    "mpl.rcParams.update({'figure.autolayout': True})\n",
    "\n",
    "# 正常显示负号\n",
    "mpl.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 禁用科学计数法\n",
    "pd.set_option('display.float_format', lambda x: '%.2f' % x) \n",
    "\n",
    "# 定义颜色，主色：蓝色，辅助色：灰色，互补色：橙色\n",
    "c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF',\n",
    "     '灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC',\n",
    "     '橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}\n",
    "\n",
    "# 把二维列表展开成一维列表\n",
    "cs = [i for k in [[c['蓝色']]*7, [c['橙色']]*3] for i in k]\n",
    "\n",
    "# 防止动态图显示不完整\n",
    "plt.rcParams['animation.embed_limit'] = 1e100"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 定义数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 当需要更新数据时，去掉注释后运行一次\n",
    "# import akshare as ak\n",
    "\n",
    "# # 从 akshare 获取历史数据，速度比较慢\n",
    "# df_all_history = ak.covid_19_history()\n",
    "\n",
    "# # 保存到 Excel 文件中，以便下次快速读取数据，根据运行日期修改文件名称\n",
    "# df_all_history.to_excel('./data/covid_19_history_20200718.xlsx')\n",
    "\n",
    "# 你可以前往 https://github.com/linjiwx/mp 下载画图用的数据和完整代码\n",
    "df_all = pd.read_excel('./data/covid_19_history_20200718.xlsx', index_col=0).fillna('')\n",
    "\n",
    "# 将字符串格式的日期转换为日期格式\n",
    "df_all['date'] = pd.to_datetime(df_all['date'])\n",
    "\n",
    "# 将时间格式转为字符串格式的日期，以 YYYY-mm-dd 的形式保存到另外一列\n",
    "df_all['dates'] = df_all['date'].apply(lambda x:x.strftime('%Y-%m-%d'))\n",
    "\n",
    "# 添加现存确诊列\n",
    "df_all['current'] = df_all['confirmed'] - df_all['cured'] - df_all['dead']\n",
    "\n",
    "# 排除省份的数据，只保留国家的数据，设置日期为索引\n",
    "dfc = df_all.query(\"province=='' and country!='钻石公主号邮轮'\").set_index('date')\n",
    "\n",
    "# 计算总天数，根据需要修改起止日期\n",
    "days = (datetime.date(2020,7,18) - datetime.date(2020,3,1)).days + 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 开始画图\n",
    "\n",
    "用「**面向对象**」的方法画图。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAI4CAYAAAB3OR9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdd3gUZdcG8Hu2ZFMICSWhBEgA6UgR6U0QBaRKsSAYQUURaSIiNqQJ6KsgCIoiVQSUKkapAoI0kV4lEEroLYUk28/3x7rDbrZkU3zx/bx/17UXZOaZZ57Z7G7OPnPmjCIiAiIiIiIiAgBo7vUAiIiIiIj+SRggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YIBMREREROSCATIRERERkQsGyERERERELhggExERERG5YID8D7Bz507s2rXrXg/jf9apU6dgsVju9TD+kVJTU3Hjxg1YrdZ7PZQCderUKZhMpr99PyLic53FYvG7Pi/u3LmDxMREnD59ukD7JSKi3MlzgJyeno5BgwahUaNGsNvtAW9nMpmwbds2TJgwASdPnszr7v9r1q9fj549e6Jr165/2z4ee+wxdO7cOd/9XL58GWfPns334/bt2wVwVP8dZrMZrVq1QkxMDDZt2vS37mv69Ono2LEjvvjiC1y7dq1A+963bx/eeOMNfPjhh/kK9jMyMrBz50715w4dOiAqKgp79uwBABw+fNgj+Jo4cSJ69+6NOXPm5Crg27t3LxRFQdWqVX22SU5OxmeffYbVq1ery9auXYtVq1YhLS0t4H25EhF07doV5cqVw5gxY3Dnzp089ePP9evX0adPHzz77LM+2/zwww+4//77MW3atAILlNeuXYtKlSqhTp06BdIfALz++uuYNm0ajhw54rfdhg0bYLPZCmy//00bNmxAr1690L1793s9FCL6f0KX1w3DwsLwzTffICUlBUeOHEGtWrU82mzZsgWHDx/GpUuXcPHiRZw5cwZ//PEHjEYjAGDHjh1ISEhQ27/xxhv46KOP8jokr9atW4dHH300z9unpqZi2bJl0Ol0sFqt0Oly95T9/PPPuHHjBkJCQmAwGKAoikcbrVYLRVHw448/eqwTEZhMJvU56927t899de/e3S04yquRI0di0qRJPtebzWbMmTMH/fr1Q1BQUI79ffzxx9iwYQOef/559OzZM9/jc7Vo0SJcvHgRNWvWRMuWLXO9vdlsxptvvonevXvjgQce8Nt2zpw5OHDgABISElC1alVER0fnddgerl27ho8++ghFixbFG2+8kac+LBYLatWqhZs3b+LPP/9EdHQ0goODAQAhISEAHL/bdevWYfr06XjllVcAOALdFStWwGw2o1+/fgHvz9lnqVKlfLa5cOECBg0ahE6dOqFLly4AgAEDBuDs2bO4ePEiChcunOvjXLNmDY4dOwYAuHXrFsLCwnLdR06Cg4OxY8cOnDlzBh06dMBTTz3l0WbRokU4evQoLl265PV9nReFChVy+7cgLFmyBBcvXkT37t2xbNkyr21u376NRx99FCVLlsR//vMfPPPMMwH1vXDhQqSmphbYWNu2bYtKlSrlervk5GQsXrwYer0e6enpCA8PL7AxEdG/U8DRXnp6OiwWC0JCQhAcHAyNRoOWLVti9erV2Lt3L2rWrAmr1YqsrCwAQEREBCZNmoR169apfYSFhaFs2bIoVaoUoqOjUbRoUVy4cAFly5ZV1wOOGdX7778/XweWkJCAI0eO5PsPjfPD2mq1IikpyePDW0TU4w4KClIDEqePP/444JnNTp06+V1frFgxvwFyaGgoAODEiROIjY31WN+tWzf8/PPPPtcvXLgQ/fv3z/E5e/jhh7F9+3YkJydj/PjxftsCjtPh69aty/H4nL799ltcu3YNwcHBbl9IbDYbzGYzqlatikceeQQion6hqlOnDubNm+fWj1arRXx8PDQa3ydKPvjgA0yZMgVLly7F77//jtKlS3ttd+LECRw4cED9+cCBA3jooYcCOp5AREREAPAfbOZEr9djzJgx6NOnD9566y3Mnj1b/QJjMBhw9OhRrFu3DtWqVcMLL7ygbuc8k/P666/nan/OANn5rzcGg8GjjfM9UrRo0VztDwDsdjvef/99AECj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qle356R27do4ePAg+vbti65du6JFixZuebF6vR6RkZFqVQEAmDRpEkaNGoVq1aph+/btblfxO2fKsktJSVFvPABAvRK/Zs2abu2WLl2Kjz76CBMnTsRbb73lNiNktVqRnp7uVrLMWckjIiLC6+xRbGwsTp8+jS+++ALz58/Hrl27ULhwYQwZMgRDhw5FmTJl1BsZZGRkYNy4cXj77bfx66+/4sknn8SsWbMwY8aMezbT8uabb+Lhhx9Wy/H548wh/7s8//zzKF68ONq1a6f+HhcvXoy+ffvCZDKhTZs2WLRoEbRaLXbu3Am73a7OMD7w/5wAACAASURBVAfKOVv3yiuvQKPRIDIyEv3798fHH3+MYcOGYeXKlQH107RpU8TExKhnGhYvXgyDwYAnn3xSbbNz5078+eefHtVVnnjiCSxYsAAzZ85Ep06dcOfOHbRt29brfi5duoTFixcjNDQU3bt3x/Lly9GgQQOvVVXy69KlS9i6dSs2bNiAH374wa3CR9u2bQOeMU5ISMCNGzcCOgtTo0YN7N27122Z0WjM941g/unq1q2LBg0aYM+ePfjpp5/QuXNnALmfQc7JgAED8O2332L8+PHo0qWLegdMf3r06IEPPvgADz74IB555BEAjussPv74Y4wZMwZBQUFYtGgRunfvjpo1a2Lz5s0AgK5du+LYsWPYt28f7Hb73zaLT0T/T+U2ot62bZs6W+A6e2C3293yUY1Go+h0Orn//vvdtg90Brls2bJus1jeZpA3bdokQ4YMkd9++01EAptBvnz5sqSlpYmIyPHjxwWAPPbYY+r6qKgoj9mzVq1aqTMYDz30kNtMWVhYmJQrV85jP7GxsfnKOc7pkT1n+LvvvpPmzZtLiRIlPNqWKVNGypYtKxEREaLVar32FxoaKoULFxYAotfr5aOPPvL7+8k+g+xvJjk3M8hOzhk9fzPI1atXF41GIwsXLpSFCxdK//79BYC89dZbHstyM4PsLf/3zp07bpU82rVrJ5mZmSIicvLkSSlWrJhER0fLnj17Aj7Gb7/9VgBIiRIl3N47165dU/PI58yZE3B/Tt98840AkDfffFNdZrfbpWLFilK4cGExGo1u7c1msxQvXlxCQ0OlW7duAkAWLlzote/09HTp16+fXLp06W+tYrFo0SKP12ibNm2kVq1aOf4+s3POrh85csRnG295xv7W/X+bQRYR+fTTTyU8PFzmz5+vLqtSpYrfM0WufwOMRqPcunVLMjIyxGaz+RzLiRMnJCkpSdLS0uTWrVsiEngOcmZmpnz++ecSFxenfh47z7QsWLBArczSvXt3ERF5//33BYCsWLHCb79ERNnlamo3NTUVPXr0gMFgwIoVK9TlaWlp6NGjByIiItSbOxw4cABWq9VvHqMvly5dwoULF3zeEMSpdevWbm0CuaLbddbJmc/mWv80+6zsb7/9hs2bN6NChQqIj4/H6NGj0bp1a2zatEmdefY2k7t8+XJotVoYDAaICOrWrYuaNWti0aJFbu1mz56Nffv2YfTo0ShRooTbulOnTqFz587o168fRowYAcAxg5yRkeExo1WiRAls27ZNHU+ZMmUQFxeHUqVKITo6GlFRUTh+/DiWLFmCl156Cc8++yyKFi2KokWLokiRItDr9cjKysLQoUOxevXqgG+wADh+/+3bt8d3333nUW3g73Tt2jXY7Xb06dPHbXler4wHHPm08fHx2L9/P4oUKYLMzEwsWLAA48ePx8WLF6EoCgYPHowPP/wQQUFBuHLlCtq3b4+bN29Cp9Nh8+bNAdWzTkpKwoABAwAAY8eOdavTHBUVhdGjR+O1117D4MGD0aRJE1SpUiWg8ZvNZowePRparRbt2rVTZ84SEhJw+vRpvPrqqx51jPV6PV5++WWMHz8eK1asQJEiRdCtWzev/RcqVAhff/01AHi98cPNmzcRGhqqVrvJiYio9Xy1Wq36PPTq1QuLFy/G3r178fTTT+PFF19EtWrV0KNHDxw6dCig5yK7QMaTlJSE3r17uy3zloMs+bgl+D/V008/jaeeesqt1ntKSkrAZwHXrFmj3pI8O2dljuxiY2NzvIGIzWbDr7/+iiVLlmDp0qVITU1FiRIlsGDBAvTp0wcWiwWvv/46Pv74Y9x3331ITExUK1v07t0b48ePx3vvvYdOnTrd8xu4ENH/jlx9WowaNQpXr15Fw4YN3VIFnBfhrVixAgsXLkSfPn2we/duAFBvKJIbq1atAgC0bNkyx7aXLl1CQkICzGazehen7DeF8MV5K94HH3xQXeb6IZ6SkoK+ffsCAN577z3Ex8cjMTERCxcuRLt27bB+/XqffderV0/9f2JiIsxmM2rUqOGWunD9+nV8+eWXSE9Px969ezF37ly3VJHr168DAO67774cUx6aNWuGzz77DHXq1EHt2rUREhKCLVu2uN1kY/bs2ViyZAmqVq2KJk2aAHCcfo6Ojkb9+vUREhKCWbNm4aOPPvJbYspVVlYWOnbsiB07dmDatGm5Lk+Wk1mzZmHWrFnqz86L9K5du4YbN26gdOnS6gWQzltlb968Wb0VuXNZIK5evYqePXvi+vXrmDRpEiZPnoznn38eS5YsAQBUrFgRM2bMUNMPTp8+jbZt2+LMmTMoWrQoli9f7vUW6Nldv34d7du3R2pqKlq1aoUXX3zRo83gwYOxYsUKbN++HQ8//DC2bt2KihUr5tj3rl271JKLDz30ECIjI9GiRQs1qHQG5dkNGDAAEyZMgIhg6NChXm/THojY2Fg1xSon2QOmiRMnqqXAAEeaSEhISMDlDQtCeno6tmzZkmM7582B8nPnw38abzeGSUlJ8XuTENeLK6tWrYr33nsPISEhOf7erFarmq7nytsXj6lTp6rlJ8PCwjBq1CiMHDkSEREROHz4MJ577jns27cPTz31FL788kuUKFFCvcC3YsWK6NevH7788ksMGzYM06dP9/8kEBE5BTrV7DxtW7x4cbVsm+vptXPnzklISIhERkbKxYsXpV27dgLA45RzTikWNptN7r//fvWiISdvKRYijtOf0dHR6mlYRVHk559/FhGRtWvX+j0m56nXEydOqMucKRYpKSnSrFkzASCNGjVSL8RKT0+X++67T0qWLCl79uwJqAi+84KzMWPGeKw7ceKE9OzZU6KioiQ5Odlt3apVqwSAfP7552IymdTTkTk5d+6c+rsZOXKkenr0q6++EgAyZcoUEXGczjUYDAI4SnWtWbMmoFJUIqJepOUsodS6dWufpejyk2LRrFkztWRbnTp1RFEUERFZtmyZAJAuXbqo2+T3Ij3no2rVqnLjxg0RcaRb1K5dWz744AO341u5cqX6HMTFxeWYMuSUlJSk3hQkOjrarQRidmfPnpXixYuraTKHDh0KaB8iIufPn5d58+ZJnz593C5KLV++vLz66quya9cuta3ZbFZTK/BXqkkgZQW9pVg0bNhQ6tevL02aNJHmzZurN9TwlmLRokULad68uTRp0kTq1asns2fPznGfzs+PvKRY+Psd5TbFwlnKzvUmHQWRYvHLL78UWIqF62va2yOn97qz9F2NGjV8tnnwwQfVvwH54Uyx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1uINOvqud+stO3ZYD8269cRm7R8AAAAdQ0oC8o3PzVP3XL/u+sloPTFzue58daG8OwLyuu1VmvfdVj336XeSpEjUVmGuX1/de6qknUH6k9tP1MDCnEb3NfDql+X3mE0uW9iKanFRia544rNYmZwCIUtfrdmuK5+co0OHFNaZN2ZgV31250l1pv3i33OUl+lt8v4BAADQsSQdkB96b4lemrNG8+6eoKht6/Ljhury44ZKqmktzr7wWb3162N14OBucdf3mDtDazAckST5dgnAVqSm1TnTV1NcswktzbXufn2h7nhloaSalt9dXf7EZ/rPR6skqV5Azs306pAh3WOvq0OWlhSV6sKxezZ5/wAAAOhYkgrIViSqh95bqueuOlJF26t09F3vas6dJ6vPlS+pX9cslVSF5PO4dMqfPtD2ipB6d8nQuu1V+vDW8Tp875qw6nYE5DtfXagnZi6Xz2NqW3lQbtNQfqZX4YitHnk7W52NpudjXTpub00Y3U93vLpA5dXhevNvP2OUrjp+mC574rNGtzVr8UYFwhGNH9mn6QUAAABAh5JUQHabLn15zymybemA3/1XVx4/VD3zMyRJi/54qm6fukD5WV4dtU9PXffUXC24b6IGXv1yrP/xru4+a0ysD/OFD3+sgYXZuv2M0ckUUb0LMtW7IFNds31xA/LAwhwNLMxRjr/xqpi2sEiDumdrr155SZUJAAAA6SvpLhY+t6lzHvhQhgzdOGFfhayabhKPzVihhd8XK8NrqrgypK3lQT347hKVByyFI9G423rm41W69qm5yva7Yy3IT364UmXVYV00doj+ct6ByRY3KdMWFumEEbQeAwAAdGZJBeRAyNLP/zVbb81fpwP36CqXy5DbdOn5q4+UJF12zF6xZWv79z40+WDt0T3+zXjnHjFY5x4xWNLOFuQrjx+mDcVVGjGgIJmiJm315nIt31CmP56zf7uWAwAAAK0rqYC8fEOZPl2+WbedPlJvL1gnSRp/3/v6YtVWZfs98ph1OwuHI7YC4YiO3qenpv7y6Cbt45EPlunR6cs0/95TVZjrT6a4SZm2sEge06Vxw3u1WxkAAADQ+pIKyCMGFOire07RG19+H5v2we9OqLPMNz8UqyIQjo0GEbaisaHdmuKmifupe65fBdntO7TatIVFOnRIoXIZ4g0AAKBTS7oPcpdsX53Xnyzd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\n",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用「面向对象」的方法画图，定义图片的大小\n",
    "fig, ax = plt.subplots(figsize=(10, 8))\n",
    "\n",
    "# 设置背景颜色\n",
    "fig.set_facecolor('w')\n",
    "ax.set_facecolor('w')\n",
    "\n",
    "# 隐藏边框\n",
    "ax.spines['top'].set_visible(False)\n",
    "ax.spines['bottom'].set_visible(False)\n",
    "ax.spines['left'].set_visible(False)\n",
    "ax.spines['right'].set_visible(False)\n",
    "\n",
    "# 隐藏刻度线\n",
    "ax.tick_params(axis='x', which='major', length=0)\n",
    "ax.tick_params(axis='y', which='major', length=0)\n",
    "\n",
    "# 设置坐标标签字体大小和颜色\n",
    "ax.tick_params(labelsize=16, colors=c['深灰色'])\n",
    "\n",
    "# 定义动画函数\n",
    "def animate(num): \n",
    "    # 先清空画面\n",
    "    ax.clear()\n",
    "\n",
    "    # 选取排名前十的数据\n",
    "    temp = (datetime.date(2020,3,1)+datetime.timedelta(days=int(num-1))).strftime('%Y-%m-%d')\n",
    "    df_temp = dfc.loc[temp][['country', 'confirmed']].sort_values('confirmed')[-10:]\n",
    "\n",
    "    # 绘制条形图\n",
    "    bar1 = ax.barh(df_temp.country, df_temp.confirmed, color=cs)\n",
    "\n",
    "    # 设置标题\n",
    "    ax.set_title('\\n新冠病毒累计确诊人数排名前十的国家', loc='left', fontsize=26)\n",
    "\n",
    "    # 设置坐标\n",
    "    ax.set_xlim(0, 4500000)\n",
    "    ax.set_xticklabels([])\n",
    "    ax.set_yticklabels([])\n",
    "\n",
    "    # 显示数字标签\n",
    "    for (i, rect) in zip(range(len(bar1)), bar1):\n",
    "        w = rect.get_width()\n",
    "        ax.text(w, rect.get_y()+rect.get_height()/2, ' ' + df_temp.country[i] + ' %.0f' % w, \n",
    "                ha='left', va='center', color=cs[i], fontsize=16)\n",
    "\n",
    "    # 图片背景显示日期的动态变化\n",
    "    string = df_temp.index[0].strftime('%Y年%m月%d日')\n",
    "    ax.text(4500000, 0, string, ha='right', va='bottom', fontsize=70, color=c['灰色'], zorder=-1, alpha=0.2)\n",
    "\n",
    "# 绘制动画\n",
    "animator = animation.FuncAnimation(fig, animate, frames=np.arange(1, days+1, 1), interval=200)\n",
    "\n",
    "# 在 Jupyter Notebook 中显示动画\n",
    "# HTML(animator.to_jshtml())\n",
    "\n",
    "# 保存为 mp4 的文件格式，需要安装二进制文件 ffmpeg，下载地址：http://www.ffmpeg.org/download.html\n",
    "animator.save('动态条形图.mp4')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
